/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package lexico;

import exceptions.ErroLexicoException;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

/**
 *
 * @author joaocarlos
 */
public class AutomatoTestOfComments {

    public AutomatoTestOfComments() {
    }

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Before
    public void setUp() {
    }

    @After
    public void tearDown() {
    }

    /**
     * Duas entrada com palavra inválida, uma em cada linha.
     * @throws ErroLexicoException
     */
    @Test
    public void testComentarioBloco() throws ErroLexicoException {
        Automato instance = new Automato();
        String textoFonte = "/* isso é a linha 1";
        instance.controle(textoFonte);
        textoFonte = "isso, a linha 2";
        instance.controle(textoFonte);
        textoFonte = "isso, a linha 3 */";
        instance.controle(textoFonte);
        assertTrue(instance.listagem.isEmpty());
        //assertEquals("Valor incorreto de saída", "CARACTER INVALIDO", instance.listErro.get(0).getTipo());
    }

    @Test
    public void testComentarioLinha() throws ErroLexicoException {
        Automato instance = new Automato();
        String textoFonte = "//isso é um comentário de linha";
        instance.controle(textoFonte);
        textoFonte = "identificador";
        instance.controle(textoFonte);
        assertEquals("Valor incorreto de saída", "IDENTIFICADOR", instance.listagem.get(0).getTipo().toString());
    }

}